package com.quanyan.user.model.db;

import com.quanyan.common.utils.Limit;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class TbUserExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    protected int limitStart = 0;

    protected int limitEnd = 0;

    protected Limit limit;

    public TbUserExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setLimitStart(int limitStart) {
        this.limitStart=limitStart;
    }

    public int getLimitStart() {
        return limitStart;
    }

    public void setLimitEnd(int limitEnd) {
        this.limitEnd=limitEnd;
    }

    public int getLimitEnd() {
        return limitEnd;
    }

    public void setLimit(Limit limit) {
        this.limit=limit;
    }

    public Limit getLimit() {
        return limit;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andNickNameIsNull() {
            addCriterion("nick_name is null");
            return (Criteria) this;
        }

        public Criteria andNickNameIsNotNull() {
            addCriterion("nick_name is not null");
            return (Criteria) this;
        }

        public Criteria andNickNameEqualTo(String value) {
            addCriterion("nick_name =", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameNotEqualTo(String value) {
            addCriterion("nick_name <>", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameGreaterThan(String value) {
            addCriterion("nick_name >", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameGreaterThanOrEqualTo(String value) {
            addCriterion("nick_name >=", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameLessThan(String value) {
            addCriterion("nick_name <", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameLessThanOrEqualTo(String value) {
            addCriterion("nick_name <=", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameLike(String value) {
            addCriterion("nick_name like", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameNotLike(String value) {
            addCriterion("nick_name not like", value, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameIn(List<String> values) {
            addCriterion("nick_name in", values, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameNotIn(List<String> values) {
            addCriterion("nick_name not in", values, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameBetween(String value1, String value2) {
            addCriterion("nick_name between", value1, value2, "nickName");
            return (Criteria) this;
        }

        public Criteria andNickNameNotBetween(String value1, String value2) {
            addCriterion("nick_name not between", value1, value2, "nickName");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("name is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("name is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("name =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("name <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("name >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("name >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("name <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("name <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("name like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("name not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("name in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("name not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("name between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("name not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andMobileIsNull() {
            addCriterion("mobile is null");
            return (Criteria) this;
        }

        public Criteria andMobileIsNotNull() {
            addCriterion("mobile is not null");
            return (Criteria) this;
        }

        public Criteria andMobileEqualTo(String value) {
            addCriterion("mobile =", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotEqualTo(String value) {
            addCriterion("mobile <>", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileGreaterThan(String value) {
            addCriterion("mobile >", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileGreaterThanOrEqualTo(String value) {
            addCriterion("mobile >=", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileLessThan(String value) {
            addCriterion("mobile <", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileLessThanOrEqualTo(String value) {
            addCriterion("mobile <=", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileLike(String value) {
            addCriterion("mobile like", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotLike(String value) {
            addCriterion("mobile not like", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileIn(List<String> values) {
            addCriterion("mobile in", values, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotIn(List<String> values) {
            addCriterion("mobile not in", values, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileBetween(String value1, String value2) {
            addCriterion("mobile between", value1, value2, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotBetween(String value1, String value2) {
            addCriterion("mobile not between", value1, value2, "mobile");
            return (Criteria) this;
        }

        public Criteria andIsVerifyMobileIsNull() {
            addCriterion("is_verify_mobile is null");
            return (Criteria) this;
        }

        public Criteria andIsVerifyMobileIsNotNull() {
            addCriterion("is_verify_mobile is not null");
            return (Criteria) this;
        }

        public Criteria andIsVerifyMobileEqualTo(Byte value) {
            addCriterion("is_verify_mobile =", value, "isVerifyMobile");
            return (Criteria) this;
        }

        public Criteria andIsVerifyMobileNotEqualTo(Byte value) {
            addCriterion("is_verify_mobile <>", value, "isVerifyMobile");
            return (Criteria) this;
        }

        public Criteria andIsVerifyMobileGreaterThan(Byte value) {
            addCriterion("is_verify_mobile >", value, "isVerifyMobile");
            return (Criteria) this;
        }

        public Criteria andIsVerifyMobileGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_verify_mobile >=", value, "isVerifyMobile");
            return (Criteria) this;
        }

        public Criteria andIsVerifyMobileLessThan(Byte value) {
            addCriterion("is_verify_mobile <", value, "isVerifyMobile");
            return (Criteria) this;
        }

        public Criteria andIsVerifyMobileLessThanOrEqualTo(Byte value) {
            addCriterion("is_verify_mobile <=", value, "isVerifyMobile");
            return (Criteria) this;
        }

        public Criteria andIsVerifyMobileIn(List<Byte> values) {
            addCriterion("is_verify_mobile in", values, "isVerifyMobile");
            return (Criteria) this;
        }

        public Criteria andIsVerifyMobileNotIn(List<Byte> values) {
            addCriterion("is_verify_mobile not in", values, "isVerifyMobile");
            return (Criteria) this;
        }

        public Criteria andIsVerifyMobileBetween(Byte value1, Byte value2) {
            addCriterion("is_verify_mobile between", value1, value2, "isVerifyMobile");
            return (Criteria) this;
        }

        public Criteria andIsVerifyMobileNotBetween(Byte value1, Byte value2) {
            addCriterion("is_verify_mobile not between", value1, value2, "isVerifyMobile");
            return (Criteria) this;
        }

        public Criteria andAccountIsNull() {
            addCriterion("account is null");
            return (Criteria) this;
        }

        public Criteria andAccountIsNotNull() {
            addCriterion("account is not null");
            return (Criteria) this;
        }

        public Criteria andAccountEqualTo(String value) {
            addCriterion("account =", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountNotEqualTo(String value) {
            addCriterion("account <>", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountGreaterThan(String value) {
            addCriterion("account >", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountGreaterThanOrEqualTo(String value) {
            addCriterion("account >=", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountLessThan(String value) {
            addCriterion("account <", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountLessThanOrEqualTo(String value) {
            addCriterion("account <=", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountLike(String value) {
            addCriterion("account like", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountNotLike(String value) {
            addCriterion("account not like", value, "account");
            return (Criteria) this;
        }

        public Criteria andAccountIn(List<String> values) {
            addCriterion("account in", values, "account");
            return (Criteria) this;
        }

        public Criteria andAccountNotIn(List<String> values) {
            addCriterion("account not in", values, "account");
            return (Criteria) this;
        }

        public Criteria andAccountBetween(String value1, String value2) {
            addCriterion("account between", value1, value2, "account");
            return (Criteria) this;
        }

        public Criteria andAccountNotBetween(String value1, String value2) {
            addCriterion("account not between", value1, value2, "account");
            return (Criteria) this;
        }

        public Criteria andIsEnableIsNull() {
            addCriterion("is_enable is null");
            return (Criteria) this;
        }

        public Criteria andIsEnableIsNotNull() {
            addCriterion("is_enable is not null");
            return (Criteria) this;
        }

        public Criteria andIsEnableEqualTo(Byte value) {
            addCriterion("is_enable =", value, "isEnable");
            return (Criteria) this;
        }

        public Criteria andIsEnableNotEqualTo(Byte value) {
            addCriterion("is_enable <>", value, "isEnable");
            return (Criteria) this;
        }

        public Criteria andIsEnableGreaterThan(Byte value) {
            addCriterion("is_enable >", value, "isEnable");
            return (Criteria) this;
        }

        public Criteria andIsEnableGreaterThanOrEqualTo(Byte value) {
            addCriterion("is_enable >=", value, "isEnable");
            return (Criteria) this;
        }

        public Criteria andIsEnableLessThan(Byte value) {
            addCriterion("is_enable <", value, "isEnable");
            return (Criteria) this;
        }

        public Criteria andIsEnableLessThanOrEqualTo(Byte value) {
            addCriterion("is_enable <=", value, "isEnable");
            return (Criteria) this;
        }

        public Criteria andIsEnableIn(List<Byte> values) {
            addCriterion("is_enable in", values, "isEnable");
            return (Criteria) this;
        }

        public Criteria andIsEnableNotIn(List<Byte> values) {
            addCriterion("is_enable not in", values, "isEnable");
            return (Criteria) this;
        }

        public Criteria andIsEnableBetween(Byte value1, Byte value2) {
            addCriterion("is_enable between", value1, value2, "isEnable");
            return (Criteria) this;
        }

        public Criteria andIsEnableNotBetween(Byte value1, Byte value2) {
            addCriterion("is_enable not between", value1, value2, "isEnable");
            return (Criteria) this;
        }

        public Criteria andPasswordIsNull() {
            addCriterion("password is null");
            return (Criteria) this;
        }

        public Criteria andPasswordIsNotNull() {
            addCriterion("password is not null");
            return (Criteria) this;
        }

        public Criteria andPasswordEqualTo(String value) {
            addCriterion("password =", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotEqualTo(String value) {
            addCriterion("password <>", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordGreaterThan(String value) {
            addCriterion("password >", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordGreaterThanOrEqualTo(String value) {
            addCriterion("password >=", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordLessThan(String value) {
            addCriterion("password <", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordLessThanOrEqualTo(String value) {
            addCriterion("password <=", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordLike(String value) {
            addCriterion("password like", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotLike(String value) {
            addCriterion("password not like", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordIn(List<String> values) {
            addCriterion("password in", values, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotIn(List<String> values) {
            addCriterion("password not in", values, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordBetween(String value1, String value2) {
            addCriterion("password between", value1, value2, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotBetween(String value1, String value2) {
            addCriterion("password not between", value1, value2, "password");
            return (Criteria) this;
        }

        public Criteria andYearIsNull() {
            addCriterion("year is null");
            return (Criteria) this;
        }

        public Criteria andYearIsNotNull() {
            addCriterion("year is not null");
            return (Criteria) this;
        }

        public Criteria andYearEqualTo(Short value) {
            addCriterion("year =", value, "year");
            return (Criteria) this;
        }

        public Criteria andYearNotEqualTo(Short value) {
            addCriterion("year <>", value, "year");
            return (Criteria) this;
        }

        public Criteria andYearGreaterThan(Short value) {
            addCriterion("year >", value, "year");
            return (Criteria) this;
        }

        public Criteria andYearGreaterThanOrEqualTo(Short value) {
            addCriterion("year >=", value, "year");
            return (Criteria) this;
        }

        public Criteria andYearLessThan(Short value) {
            addCriterion("year <", value, "year");
            return (Criteria) this;
        }

        public Criteria andYearLessThanOrEqualTo(Short value) {
            addCriterion("year <=", value, "year");
            return (Criteria) this;
        }

        public Criteria andYearIn(List<Short> values) {
            addCriterion("year in", values, "year");
            return (Criteria) this;
        }

        public Criteria andYearNotIn(List<Short> values) {
            addCriterion("year not in", values, "year");
            return (Criteria) this;
        }

        public Criteria andYearBetween(Short value1, Short value2) {
            addCriterion("year between", value1, value2, "year");
            return (Criteria) this;
        }

        public Criteria andYearNotBetween(Short value1, Short value2) {
            addCriterion("year not between", value1, value2, "year");
            return (Criteria) this;
        }

        public Criteria andBirthdayIsNull() {
            addCriterion("birthday is null");
            return (Criteria) this;
        }

        public Criteria andBirthdayIsNotNull() {
            addCriterion("birthday is not null");
            return (Criteria) this;
        }

        public Criteria andBirthdayEqualTo(Date value) {
            addCriterionForJDBCDate("birthday =", value, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayNotEqualTo(Date value) {
            addCriterionForJDBCDate("birthday <>", value, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayGreaterThan(Date value) {
            addCriterionForJDBCDate("birthday >", value, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("birthday >=", value, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayLessThan(Date value) {
            addCriterionForJDBCDate("birthday <", value, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("birthday <=", value, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayIn(List<Date> values) {
            addCriterionForJDBCDate("birthday in", values, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayNotIn(List<Date> values) {
            addCriterionForJDBCDate("birthday not in", values, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("birthday between", value1, value2, "birthday");
            return (Criteria) this;
        }

        public Criteria andBirthdayNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("birthday not between", value1, value2, "birthday");
            return (Criteria) this;
        }

        public Criteria andGenderIsNull() {
            addCriterion("gender is null");
            return (Criteria) this;
        }

        public Criteria andGenderIsNotNull() {
            addCriterion("gender is not null");
            return (Criteria) this;
        }

        public Criteria andGenderEqualTo(Byte value) {
            addCriterion("gender =", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderNotEqualTo(Byte value) {
            addCriterion("gender <>", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderGreaterThan(Byte value) {
            addCriterion("gender >", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderGreaterThanOrEqualTo(Byte value) {
            addCriterion("gender >=", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderLessThan(Byte value) {
            addCriterion("gender <", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderLessThanOrEqualTo(Byte value) {
            addCriterion("gender <=", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderIn(List<Byte> values) {
            addCriterion("gender in", values, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderNotIn(List<Byte> values) {
            addCriterion("gender not in", values, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderBetween(Byte value1, Byte value2) {
            addCriterion("gender between", value1, value2, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderNotBetween(Byte value1, Byte value2) {
            addCriterion("gender not between", value1, value2, "gender");
            return (Criteria) this;
        }

        public Criteria andProvinceIdIsNull() {
            addCriterion("province_id is null");
            return (Criteria) this;
        }

        public Criteria andProvinceIdIsNotNull() {
            addCriterion("province_id is not null");
            return (Criteria) this;
        }

        public Criteria andProvinceIdEqualTo(Integer value) {
            addCriterion("province_id =", value, "provinceId");
            return (Criteria) this;
        }

        public Criteria andProvinceIdNotEqualTo(Integer value) {
            addCriterion("province_id <>", value, "provinceId");
            return (Criteria) this;
        }

        public Criteria andProvinceIdGreaterThan(Integer value) {
            addCriterion("province_id >", value, "provinceId");
            return (Criteria) this;
        }

        public Criteria andProvinceIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("province_id >=", value, "provinceId");
            return (Criteria) this;
        }

        public Criteria andProvinceIdLessThan(Integer value) {
            addCriterion("province_id <", value, "provinceId");
            return (Criteria) this;
        }

        public Criteria andProvinceIdLessThanOrEqualTo(Integer value) {
            addCriterion("province_id <=", value, "provinceId");
            return (Criteria) this;
        }

        public Criteria andProvinceIdIn(List<Integer> values) {
            addCriterion("province_id in", values, "provinceId");
            return (Criteria) this;
        }

        public Criteria andProvinceIdNotIn(List<Integer> values) {
            addCriterion("province_id not in", values, "provinceId");
            return (Criteria) this;
        }

        public Criteria andProvinceIdBetween(Integer value1, Integer value2) {
            addCriterion("province_id between", value1, value2, "provinceId");
            return (Criteria) this;
        }

        public Criteria andProvinceIdNotBetween(Integer value1, Integer value2) {
            addCriterion("province_id not between", value1, value2, "provinceId");
            return (Criteria) this;
        }

        public Criteria andHomeStationIdIsNull() {
            addCriterion("home_station_id is null");
            return (Criteria) this;
        }

        public Criteria andHomeStationIdIsNotNull() {
            addCriterion("home_station_id is not null");
            return (Criteria) this;
        }

        public Criteria andHomeStationIdEqualTo(Integer value) {
            addCriterion("home_station_id =", value, "homeStationId");
            return (Criteria) this;
        }

        public Criteria andHomeStationIdNotEqualTo(Integer value) {
            addCriterion("home_station_id <>", value, "homeStationId");
            return (Criteria) this;
        }

        public Criteria andHomeStationIdGreaterThan(Integer value) {
            addCriterion("home_station_id >", value, "homeStationId");
            return (Criteria) this;
        }

        public Criteria andHomeStationIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("home_station_id >=", value, "homeStationId");
            return (Criteria) this;
        }

        public Criteria andHomeStationIdLessThan(Integer value) {
            addCriterion("home_station_id <", value, "homeStationId");
            return (Criteria) this;
        }

        public Criteria andHomeStationIdLessThanOrEqualTo(Integer value) {
            addCriterion("home_station_id <=", value, "homeStationId");
            return (Criteria) this;
        }

        public Criteria andHomeStationIdIn(List<Integer> values) {
            addCriterion("home_station_id in", values, "homeStationId");
            return (Criteria) this;
        }

        public Criteria andHomeStationIdNotIn(List<Integer> values) {
            addCriterion("home_station_id not in", values, "homeStationId");
            return (Criteria) this;
        }

        public Criteria andHomeStationIdBetween(Integer value1, Integer value2) {
            addCriterion("home_station_id between", value1, value2, "homeStationId");
            return (Criteria) this;
        }

        public Criteria andHomeStationIdNotBetween(Integer value1, Integer value2) {
            addCriterion("home_station_id not between", value1, value2, "homeStationId");
            return (Criteria) this;
        }

        public Criteria andAreaIdIsNull() {
            addCriterion("area_id is null");
            return (Criteria) this;
        }

        public Criteria andAreaIdIsNotNull() {
            addCriterion("area_id is not null");
            return (Criteria) this;
        }

        public Criteria andAreaIdEqualTo(Integer value) {
            addCriterion("area_id =", value, "areaId");
            return (Criteria) this;
        }

        public Criteria andAreaIdNotEqualTo(Integer value) {
            addCriterion("area_id <>", value, "areaId");
            return (Criteria) this;
        }

        public Criteria andAreaIdGreaterThan(Integer value) {
            addCriterion("area_id >", value, "areaId");
            return (Criteria) this;
        }

        public Criteria andAreaIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("area_id >=", value, "areaId");
            return (Criteria) this;
        }

        public Criteria andAreaIdLessThan(Integer value) {
            addCriterion("area_id <", value, "areaId");
            return (Criteria) this;
        }

        public Criteria andAreaIdLessThanOrEqualTo(Integer value) {
            addCriterion("area_id <=", value, "areaId");
            return (Criteria) this;
        }

        public Criteria andAreaIdIn(List<Integer> values) {
            addCriterion("area_id in", values, "areaId");
            return (Criteria) this;
        }

        public Criteria andAreaIdNotIn(List<Integer> values) {
            addCriterion("area_id not in", values, "areaId");
            return (Criteria) this;
        }

        public Criteria andAreaIdBetween(Integer value1, Integer value2) {
            addCriterion("area_id between", value1, value2, "areaId");
            return (Criteria) this;
        }

        public Criteria andAreaIdNotBetween(Integer value1, Integer value2) {
            addCriterion("area_id not between", value1, value2, "areaId");
            return (Criteria) this;
        }

        public Criteria andRegChannelIsNull() {
            addCriterion("reg_channel is null");
            return (Criteria) this;
        }

        public Criteria andRegChannelIsNotNull() {
            addCriterion("reg_channel is not null");
            return (Criteria) this;
        }

        public Criteria andRegChannelEqualTo(Integer value) {
            addCriterion("reg_channel =", value, "regChannel");
            return (Criteria) this;
        }

        public Criteria andRegChannelNotEqualTo(Integer value) {
            addCriterion("reg_channel <>", value, "regChannel");
            return (Criteria) this;
        }

        public Criteria andRegChannelGreaterThan(Integer value) {
            addCriterion("reg_channel >", value, "regChannel");
            return (Criteria) this;
        }

        public Criteria andRegChannelGreaterThanOrEqualTo(Integer value) {
            addCriterion("reg_channel >=", value, "regChannel");
            return (Criteria) this;
        }

        public Criteria andRegChannelLessThan(Integer value) {
            addCriterion("reg_channel <", value, "regChannel");
            return (Criteria) this;
        }

        public Criteria andRegChannelLessThanOrEqualTo(Integer value) {
            addCriterion("reg_channel <=", value, "regChannel");
            return (Criteria) this;
        }

        public Criteria andRegChannelIn(List<Integer> values) {
            addCriterion("reg_channel in", values, "regChannel");
            return (Criteria) this;
        }

        public Criteria andRegChannelNotIn(List<Integer> values) {
            addCriterion("reg_channel not in", values, "regChannel");
            return (Criteria) this;
        }

        public Criteria andRegChannelBetween(Integer value1, Integer value2) {
            addCriterion("reg_channel between", value1, value2, "regChannel");
            return (Criteria) this;
        }

        public Criteria andRegChannelNotBetween(Integer value1, Integer value2) {
            addCriterion("reg_channel not between", value1, value2, "regChannel");
            return (Criteria) this;
        }

        public Criteria andRegTimeIsNull() {
            addCriterion("reg_time is null");
            return (Criteria) this;
        }

        public Criteria andRegTimeIsNotNull() {
            addCriterion("reg_time is not null");
            return (Criteria) this;
        }

        public Criteria andRegTimeEqualTo(Date value) {
            addCriterion("reg_time =", value, "regTime");
            return (Criteria) this;
        }

        public Criteria andRegTimeNotEqualTo(Date value) {
            addCriterion("reg_time <>", value, "regTime");
            return (Criteria) this;
        }

        public Criteria andRegTimeGreaterThan(Date value) {
            addCriterion("reg_time >", value, "regTime");
            return (Criteria) this;
        }

        public Criteria andRegTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("reg_time >=", value, "regTime");
            return (Criteria) this;
        }

        public Criteria andRegTimeLessThan(Date value) {
            addCriterion("reg_time <", value, "regTime");
            return (Criteria) this;
        }

        public Criteria andRegTimeLessThanOrEqualTo(Date value) {
            addCriterion("reg_time <=", value, "regTime");
            return (Criteria) this;
        }

        public Criteria andRegTimeIn(List<Date> values) {
            addCriterion("reg_time in", values, "regTime");
            return (Criteria) this;
        }

        public Criteria andRegTimeNotIn(List<Date> values) {
            addCriterion("reg_time not in", values, "regTime");
            return (Criteria) this;
        }

        public Criteria andRegTimeBetween(Date value1, Date value2) {
            addCriterion("reg_time between", value1, value2, "regTime");
            return (Criteria) this;
        }

        public Criteria andRegTimeNotBetween(Date value1, Date value2) {
            addCriterion("reg_time not between", value1, value2, "regTime");
            return (Criteria) this;
        }

        public Criteria andLoginTimeIsNull() {
            addCriterion("login_time is null");
            return (Criteria) this;
        }

        public Criteria andLoginTimeIsNotNull() {
            addCriterion("login_time is not null");
            return (Criteria) this;
        }

        public Criteria andLoginTimeEqualTo(Date value) {
            addCriterion("login_time =", value, "loginTime");
            return (Criteria) this;
        }

        public Criteria andLoginTimeNotEqualTo(Date value) {
            addCriterion("login_time <>", value, "loginTime");
            return (Criteria) this;
        }

        public Criteria andLoginTimeGreaterThan(Date value) {
            addCriterion("login_time >", value, "loginTime");
            return (Criteria) this;
        }

        public Criteria andLoginTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("login_time >=", value, "loginTime");
            return (Criteria) this;
        }

        public Criteria andLoginTimeLessThan(Date value) {
            addCriterion("login_time <", value, "loginTime");
            return (Criteria) this;
        }

        public Criteria andLoginTimeLessThanOrEqualTo(Date value) {
            addCriterion("login_time <=", value, "loginTime");
            return (Criteria) this;
        }

        public Criteria andLoginTimeIn(List<Date> values) {
            addCriterion("login_time in", values, "loginTime");
            return (Criteria) this;
        }

        public Criteria andLoginTimeNotIn(List<Date> values) {
            addCriterion("login_time not in", values, "loginTime");
            return (Criteria) this;
        }

        public Criteria andLoginTimeBetween(Date value1, Date value2) {
            addCriterion("login_time between", value1, value2, "loginTime");
            return (Criteria) this;
        }

        public Criteria andLoginTimeNotBetween(Date value1, Date value2) {
            addCriterion("login_time not between", value1, value2, "loginTime");
            return (Criteria) this;
        }

        public Criteria andIconIsNull() {
            addCriterion("icon is null");
            return (Criteria) this;
        }

        public Criteria andIconIsNotNull() {
            addCriterion("icon is not null");
            return (Criteria) this;
        }

        public Criteria andIconEqualTo(String value) {
            addCriterion("icon =", value, "icon");
            return (Criteria) this;
        }

        public Criteria andIconNotEqualTo(String value) {
            addCriterion("icon <>", value, "icon");
            return (Criteria) this;
        }

        public Criteria andIconGreaterThan(String value) {
            addCriterion("icon >", value, "icon");
            return (Criteria) this;
        }

        public Criteria andIconGreaterThanOrEqualTo(String value) {
            addCriterion("icon >=", value, "icon");
            return (Criteria) this;
        }

        public Criteria andIconLessThan(String value) {
            addCriterion("icon <", value, "icon");
            return (Criteria) this;
        }

        public Criteria andIconLessThanOrEqualTo(String value) {
            addCriterion("icon <=", value, "icon");
            return (Criteria) this;
        }

        public Criteria andIconLike(String value) {
            addCriterion("icon like", value, "icon");
            return (Criteria) this;
        }

        public Criteria andIconNotLike(String value) {
            addCriterion("icon not like", value, "icon");
            return (Criteria) this;
        }

        public Criteria andIconIn(List<String> values) {
            addCriterion("icon in", values, "icon");
            return (Criteria) this;
        }

        public Criteria andIconNotIn(List<String> values) {
            addCriterion("icon not in", values, "icon");
            return (Criteria) this;
        }

        public Criteria andIconBetween(String value1, String value2) {
            addCriterion("icon between", value1, value2, "icon");
            return (Criteria) this;
        }

        public Criteria andIconNotBetween(String value1, String value2) {
            addCriterion("icon not between", value1, value2, "icon");
            return (Criteria) this;
        }

        public Criteria andIsPhotoIsNull() {
            addCriterion("is_photo is null");
            return (Criteria) this;
        }

        public Criteria andIsPhotoIsNotNull() {
            addCriterion("is_photo is not null");
            return (Criteria) this;
        }

        public Criteria andIsPhotoEqualTo(Boolean value) {
            addCriterion("is_photo =", value, "isPhoto");
            return (Criteria) this;
        }

        public Criteria andIsPhotoNotEqualTo(Boolean value) {
            addCriterion("is_photo <>", value, "isPhoto");
            return (Criteria) this;
        }

        public Criteria andIsPhotoGreaterThan(Boolean value) {
            addCriterion("is_photo >", value, "isPhoto");
            return (Criteria) this;
        }

        public Criteria andIsPhotoGreaterThanOrEqualTo(Boolean value) {
            addCriterion("is_photo >=", value, "isPhoto");
            return (Criteria) this;
        }

        public Criteria andIsPhotoLessThan(Boolean value) {
            addCriterion("is_photo <", value, "isPhoto");
            return (Criteria) this;
        }

        public Criteria andIsPhotoLessThanOrEqualTo(Boolean value) {
            addCriterion("is_photo <=", value, "isPhoto");
            return (Criteria) this;
        }

        public Criteria andIsPhotoIn(List<Boolean> values) {
            addCriterion("is_photo in", values, "isPhoto");
            return (Criteria) this;
        }

        public Criteria andIsPhotoNotIn(List<Boolean> values) {
            addCriterion("is_photo not in", values, "isPhoto");
            return (Criteria) this;
        }

        public Criteria andIsPhotoBetween(Boolean value1, Boolean value2) {
            addCriterion("is_photo between", value1, value2, "isPhoto");
            return (Criteria) this;
        }

        public Criteria andIsPhotoNotBetween(Boolean value1, Boolean value2) {
            addCriterion("is_photo not between", value1, value2, "isPhoto");
            return (Criteria) this;
        }

        public Criteria andPhotoNumIsNull() {
            addCriterion("photo_num is null");
            return (Criteria) this;
        }

        public Criteria andPhotoNumIsNotNull() {
            addCriterion("photo_num is not null");
            return (Criteria) this;
        }

        public Criteria andPhotoNumEqualTo(Integer value) {
            addCriterion("photo_num =", value, "photoNum");
            return (Criteria) this;
        }

        public Criteria andPhotoNumNotEqualTo(Integer value) {
            addCriterion("photo_num <>", value, "photoNum");
            return (Criteria) this;
        }

        public Criteria andPhotoNumGreaterThan(Integer value) {
            addCriterion("photo_num >", value, "photoNum");
            return (Criteria) this;
        }

        public Criteria andPhotoNumGreaterThanOrEqualTo(Integer value) {
            addCriterion("photo_num >=", value, "photoNum");
            return (Criteria) this;
        }

        public Criteria andPhotoNumLessThan(Integer value) {
            addCriterion("photo_num <", value, "photoNum");
            return (Criteria) this;
        }

        public Criteria andPhotoNumLessThanOrEqualTo(Integer value) {
            addCriterion("photo_num <=", value, "photoNum");
            return (Criteria) this;
        }

        public Criteria andPhotoNumIn(List<Integer> values) {
            addCriterion("photo_num in", values, "photoNum");
            return (Criteria) this;
        }

        public Criteria andPhotoNumNotIn(List<Integer> values) {
            addCriterion("photo_num not in", values, "photoNum");
            return (Criteria) this;
        }

        public Criteria andPhotoNumBetween(Integer value1, Integer value2) {
            addCriterion("photo_num between", value1, value2, "photoNum");
            return (Criteria) this;
        }

        public Criteria andPhotoNumNotBetween(Integer value1, Integer value2) {
            addCriterion("photo_num not between", value1, value2, "photoNum");
            return (Criteria) this;
        }

        public Criteria andSignIsNull() {
            addCriterion("sign is null");
            return (Criteria) this;
        }

        public Criteria andSignIsNotNull() {
            addCriterion("sign is not null");
            return (Criteria) this;
        }

        public Criteria andSignEqualTo(String value) {
            addCriterion("sign =", value, "sign");
            return (Criteria) this;
        }

        public Criteria andSignNotEqualTo(String value) {
            addCriterion("sign <>", value, "sign");
            return (Criteria) this;
        }

        public Criteria andSignGreaterThan(String value) {
            addCriterion("sign >", value, "sign");
            return (Criteria) this;
        }

        public Criteria andSignGreaterThanOrEqualTo(String value) {
            addCriterion("sign >=", value, "sign");
            return (Criteria) this;
        }

        public Criteria andSignLessThan(String value) {
            addCriterion("sign <", value, "sign");
            return (Criteria) this;
        }

        public Criteria andSignLessThanOrEqualTo(String value) {
            addCriterion("sign <=", value, "sign");
            return (Criteria) this;
        }

        public Criteria andSignLike(String value) {
            addCriterion("sign like", value, "sign");
            return (Criteria) this;
        }

        public Criteria andSignNotLike(String value) {
            addCriterion("sign not like", value, "sign");
            return (Criteria) this;
        }

        public Criteria andSignIn(List<String> values) {
            addCriterion("sign in", values, "sign");
            return (Criteria) this;
        }

        public Criteria andSignNotIn(List<String> values) {
            addCriterion("sign not in", values, "sign");
            return (Criteria) this;
        }

        public Criteria andSignBetween(String value1, String value2) {
            addCriterion("sign between", value1, value2, "sign");
            return (Criteria) this;
        }

        public Criteria andSignNotBetween(String value1, String value2) {
            addCriterion("sign not between", value1, value2, "sign");
            return (Criteria) this;
        }

        public Criteria andTypeIsNull() {
            addCriterion("type is null");
            return (Criteria) this;
        }

        public Criteria andTypeIsNotNull() {
            addCriterion("type is not null");
            return (Criteria) this;
        }

        public Criteria andTypeEqualTo(Byte value) {
            addCriterion("type =", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotEqualTo(Byte value) {
            addCriterion("type <>", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThan(Byte value) {
            addCriterion("type >", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThanOrEqualTo(Byte value) {
            addCriterion("type >=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThan(Byte value) {
            addCriterion("type <", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThanOrEqualTo(Byte value) {
            addCriterion("type <=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeIn(List<Byte> values) {
            addCriterion("type in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotIn(List<Byte> values) {
            addCriterion("type not in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeBetween(Byte value1, Byte value2) {
            addCriterion("type between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotBetween(Byte value1, Byte value2) {
            addCriterion("type not between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andSourceChannelIsNull() {
            addCriterion("source_channel is null");
            return (Criteria) this;
        }

        public Criteria andSourceChannelIsNotNull() {
            addCriterion("source_channel is not null");
            return (Criteria) this;
        }

        public Criteria andSourceChannelEqualTo(Byte value) {
            addCriterion("source_channel =", value, "sourceChannel");
            return (Criteria) this;
        }

        public Criteria andSourceChannelNotEqualTo(Byte value) {
            addCriterion("source_channel <>", value, "sourceChannel");
            return (Criteria) this;
        }

        public Criteria andSourceChannelGreaterThan(Byte value) {
            addCriterion("source_channel >", value, "sourceChannel");
            return (Criteria) this;
        }

        public Criteria andSourceChannelGreaterThanOrEqualTo(Byte value) {
            addCriterion("source_channel >=", value, "sourceChannel");
            return (Criteria) this;
        }

        public Criteria andSourceChannelLessThan(Byte value) {
            addCriterion("source_channel <", value, "sourceChannel");
            return (Criteria) this;
        }

        public Criteria andSourceChannelLessThanOrEqualTo(Byte value) {
            addCriterion("source_channel <=", value, "sourceChannel");
            return (Criteria) this;
        }

        public Criteria andSourceChannelIn(List<Byte> values) {
            addCriterion("source_channel in", values, "sourceChannel");
            return (Criteria) this;
        }

        public Criteria andSourceChannelNotIn(List<Byte> values) {
            addCriterion("source_channel not in", values, "sourceChannel");
            return (Criteria) this;
        }

        public Criteria andSourceChannelBetween(Byte value1, Byte value2) {
            addCriterion("source_channel between", value1, value2, "sourceChannel");
            return (Criteria) this;
        }

        public Criteria andSourceChannelNotBetween(Byte value1, Byte value2) {
            addCriterion("source_channel not between", value1, value2, "sourceChannel");
            return (Criteria) this;
        }

        public Criteria andPriorityIsNull() {
            addCriterion("priority is null");
            return (Criteria) this;
        }

        public Criteria andPriorityIsNotNull() {
            addCriterion("priority is not null");
            return (Criteria) this;
        }

        public Criteria andPriorityEqualTo(Short value) {
            addCriterion("priority =", value, "priority");
            return (Criteria) this;
        }

        public Criteria andPriorityNotEqualTo(Short value) {
            addCriterion("priority <>", value, "priority");
            return (Criteria) this;
        }

        public Criteria andPriorityGreaterThan(Short value) {
            addCriterion("priority >", value, "priority");
            return (Criteria) this;
        }

        public Criteria andPriorityGreaterThanOrEqualTo(Short value) {
            addCriterion("priority >=", value, "priority");
            return (Criteria) this;
        }

        public Criteria andPriorityLessThan(Short value) {
            addCriterion("priority <", value, "priority");
            return (Criteria) this;
        }

        public Criteria andPriorityLessThanOrEqualTo(Short value) {
            addCriterion("priority <=", value, "priority");
            return (Criteria) this;
        }

        public Criteria andPriorityIn(List<Short> values) {
            addCriterion("priority in", values, "priority");
            return (Criteria) this;
        }

        public Criteria andPriorityNotIn(List<Short> values) {
            addCriterion("priority not in", values, "priority");
            return (Criteria) this;
        }

        public Criteria andPriorityBetween(Short value1, Short value2) {
            addCriterion("priority between", value1, value2, "priority");
            return (Criteria) this;
        }

        public Criteria andPriorityNotBetween(Short value1, Short value2) {
            addCriterion("priority not between", value1, value2, "priority");
            return (Criteria) this;
        }

        public Criteria andSubcribeIsNull() {
            addCriterion("subcribe is null");
            return (Criteria) this;
        }

        public Criteria andSubcribeIsNotNull() {
            addCriterion("subcribe is not null");
            return (Criteria) this;
        }

        public Criteria andSubcribeEqualTo(Short value) {
            addCriterion("subcribe =", value, "subcribe");
            return (Criteria) this;
        }

        public Criteria andSubcribeNotEqualTo(Short value) {
            addCriterion("subcribe <>", value, "subcribe");
            return (Criteria) this;
        }

        public Criteria andSubcribeGreaterThan(Short value) {
            addCriterion("subcribe >", value, "subcribe");
            return (Criteria) this;
        }

        public Criteria andSubcribeGreaterThanOrEqualTo(Short value) {
            addCriterion("subcribe >=", value, "subcribe");
            return (Criteria) this;
        }

        public Criteria andSubcribeLessThan(Short value) {
            addCriterion("subcribe <", value, "subcribe");
            return (Criteria) this;
        }

        public Criteria andSubcribeLessThanOrEqualTo(Short value) {
            addCriterion("subcribe <=", value, "subcribe");
            return (Criteria) this;
        }

        public Criteria andSubcribeIn(List<Short> values) {
            addCriterion("subcribe in", values, "subcribe");
            return (Criteria) this;
        }

        public Criteria andSubcribeNotIn(List<Short> values) {
            addCriterion("subcribe not in", values, "subcribe");
            return (Criteria) this;
        }

        public Criteria andSubcribeBetween(Short value1, Short value2) {
            addCriterion("subcribe between", value1, value2, "subcribe");
            return (Criteria) this;
        }

        public Criteria andSubcribeNotBetween(Short value1, Short value2) {
            addCriterion("subcribe not between", value1, value2, "subcribe");
            return (Criteria) this;
        }

        public Criteria andIsMasterIsNull() {
            addCriterion("is_master is null");
            return (Criteria) this;
        }

        public Criteria andIsMasterIsNotNull() {
            addCriterion("is_master is not null");
            return (Criteria) this;
        }

        public Criteria andIsMasterEqualTo(Short value) {
            addCriterion("is_master =", value, "isMaster");
            return (Criteria) this;
        }

        public Criteria andIsMasterNotEqualTo(Short value) {
            addCriterion("is_master <>", value, "isMaster");
            return (Criteria) this;
        }

        public Criteria andIsMasterGreaterThan(Short value) {
            addCriterion("is_master >", value, "isMaster");
            return (Criteria) this;
        }

        public Criteria andIsMasterGreaterThanOrEqualTo(Short value) {
            addCriterion("is_master >=", value, "isMaster");
            return (Criteria) this;
        }

        public Criteria andIsMasterLessThan(Short value) {
            addCriterion("is_master <", value, "isMaster");
            return (Criteria) this;
        }

        public Criteria andIsMasterLessThanOrEqualTo(Short value) {
            addCriterion("is_master <=", value, "isMaster");
            return (Criteria) this;
        }

        public Criteria andIsMasterIn(List<Short> values) {
            addCriterion("is_master in", values, "isMaster");
            return (Criteria) this;
        }

        public Criteria andIsMasterNotIn(List<Short> values) {
            addCriterion("is_master not in", values, "isMaster");
            return (Criteria) this;
        }

        public Criteria andIsMasterBetween(Short value1, Short value2) {
            addCriterion("is_master between", value1, value2, "isMaster");
            return (Criteria) this;
        }

        public Criteria andIsMasterNotBetween(Short value1, Short value2) {
            addCriterion("is_master not between", value1, value2, "isMaster");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andRegTypeIsNull() {
            addCriterion("reg_type is null");
            return (Criteria) this;
        }

        public Criteria andRegTypeIsNotNull() {
            addCriterion("reg_type is not null");
            return (Criteria) this;
        }

        public Criteria andRegTypeEqualTo(Byte value) {
            addCriterion("reg_type =", value, "regType");
            return (Criteria) this;
        }

        public Criteria andRegTypeNotEqualTo(Byte value) {
            addCriterion("reg_type <>", value, "regType");
            return (Criteria) this;
        }

        public Criteria andRegTypeGreaterThan(Byte value) {
            addCriterion("reg_type >", value, "regType");
            return (Criteria) this;
        }

        public Criteria andRegTypeGreaterThanOrEqualTo(Byte value) {
            addCriterion("reg_type >=", value, "regType");
            return (Criteria) this;
        }

        public Criteria andRegTypeLessThan(Byte value) {
            addCriterion("reg_type <", value, "regType");
            return (Criteria) this;
        }

        public Criteria andRegTypeLessThanOrEqualTo(Byte value) {
            addCriterion("reg_type <=", value, "regType");
            return (Criteria) this;
        }

        public Criteria andRegTypeIn(List<Byte> values) {
            addCriterion("reg_type in", values, "regType");
            return (Criteria) this;
        }

        public Criteria andRegTypeNotIn(List<Byte> values) {
            addCriterion("reg_type not in", values, "regType");
            return (Criteria) this;
        }

        public Criteria andRegTypeBetween(Byte value1, Byte value2) {
            addCriterion("reg_type between", value1, value2, "regType");
            return (Criteria) this;
        }

        public Criteria andRegTypeNotBetween(Byte value1, Byte value2) {
            addCriterion("reg_type not between", value1, value2, "regType");
            return (Criteria) this;
        }

        public Criteria andQqIconSizeIsNull() {
            addCriterion("qq_icon_size is null");
            return (Criteria) this;
        }

        public Criteria andQqIconSizeIsNotNull() {
            addCriterion("qq_icon_size is not null");
            return (Criteria) this;
        }

        public Criteria andQqIconSizeEqualTo(String value) {
            addCriterion("qq_icon_size =", value, "qqIconSize");
            return (Criteria) this;
        }

        public Criteria andQqIconSizeNotEqualTo(String value) {
            addCriterion("qq_icon_size <>", value, "qqIconSize");
            return (Criteria) this;
        }

        public Criteria andQqIconSizeGreaterThan(String value) {
            addCriterion("qq_icon_size >", value, "qqIconSize");
            return (Criteria) this;
        }

        public Criteria andQqIconSizeGreaterThanOrEqualTo(String value) {
            addCriterion("qq_icon_size >=", value, "qqIconSize");
            return (Criteria) this;
        }

        public Criteria andQqIconSizeLessThan(String value) {
            addCriterion("qq_icon_size <", value, "qqIconSize");
            return (Criteria) this;
        }

        public Criteria andQqIconSizeLessThanOrEqualTo(String value) {
            addCriterion("qq_icon_size <=", value, "qqIconSize");
            return (Criteria) this;
        }

        public Criteria andQqIconSizeLike(String value) {
            addCriterion("qq_icon_size like", value, "qqIconSize");
            return (Criteria) this;
        }

        public Criteria andQqIconSizeNotLike(String value) {
            addCriterion("qq_icon_size not like", value, "qqIconSize");
            return (Criteria) this;
        }

        public Criteria andQqIconSizeIn(List<String> values) {
            addCriterion("qq_icon_size in", values, "qqIconSize");
            return (Criteria) this;
        }

        public Criteria andQqIconSizeNotIn(List<String> values) {
            addCriterion("qq_icon_size not in", values, "qqIconSize");
            return (Criteria) this;
        }

        public Criteria andQqIconSizeBetween(String value1, String value2) {
            addCriterion("qq_icon_size between", value1, value2, "qqIconSize");
            return (Criteria) this;
        }

        public Criteria andQqIconSizeNotBetween(String value1, String value2) {
            addCriterion("qq_icon_size not between", value1, value2, "qqIconSize");
            return (Criteria) this;
        }

        public Criteria andQqIconUrlIsNull() {
            addCriterion("qq_icon_url is null");
            return (Criteria) this;
        }

        public Criteria andQqIconUrlIsNotNull() {
            addCriterion("qq_icon_url is not null");
            return (Criteria) this;
        }

        public Criteria andQqIconUrlEqualTo(String value) {
            addCriterion("qq_icon_url =", value, "qqIconUrl");
            return (Criteria) this;
        }

        public Criteria andQqIconUrlNotEqualTo(String value) {
            addCriterion("qq_icon_url <>", value, "qqIconUrl");
            return (Criteria) this;
        }

        public Criteria andQqIconUrlGreaterThan(String value) {
            addCriterion("qq_icon_url >", value, "qqIconUrl");
            return (Criteria) this;
        }

        public Criteria andQqIconUrlGreaterThanOrEqualTo(String value) {
            addCriterion("qq_icon_url >=", value, "qqIconUrl");
            return (Criteria) this;
        }

        public Criteria andQqIconUrlLessThan(String value) {
            addCriterion("qq_icon_url <", value, "qqIconUrl");
            return (Criteria) this;
        }

        public Criteria andQqIconUrlLessThanOrEqualTo(String value) {
            addCriterion("qq_icon_url <=", value, "qqIconUrl");
            return (Criteria) this;
        }

        public Criteria andQqIconUrlLike(String value) {
            addCriterion("qq_icon_url like", value, "qqIconUrl");
            return (Criteria) this;
        }

        public Criteria andQqIconUrlNotLike(String value) {
            addCriterion("qq_icon_url not like", value, "qqIconUrl");
            return (Criteria) this;
        }

        public Criteria andQqIconUrlIn(List<String> values) {
            addCriterion("qq_icon_url in", values, "qqIconUrl");
            return (Criteria) this;
        }

        public Criteria andQqIconUrlNotIn(List<String> values) {
            addCriterion("qq_icon_url not in", values, "qqIconUrl");
            return (Criteria) this;
        }

        public Criteria andQqIconUrlBetween(String value1, String value2) {
            addCriterion("qq_icon_url between", value1, value2, "qqIconUrl");
            return (Criteria) this;
        }

        public Criteria andQqIconUrlNotBetween(String value1, String value2) {
            addCriterion("qq_icon_url not between", value1, value2, "qqIconUrl");
            return (Criteria) this;
        }

        public Criteria andQqOpenidIsNull() {
            addCriterion("qq_openid is null");
            return (Criteria) this;
        }

        public Criteria andQqOpenidIsNotNull() {
            addCriterion("qq_openid is not null");
            return (Criteria) this;
        }

        public Criteria andQqOpenidEqualTo(String value) {
            addCriterion("qq_openid =", value, "qqOpenid");
            return (Criteria) this;
        }

        public Criteria andQqOpenidNotEqualTo(String value) {
            addCriterion("qq_openid <>", value, "qqOpenid");
            return (Criteria) this;
        }

        public Criteria andQqOpenidGreaterThan(String value) {
            addCriterion("qq_openid >", value, "qqOpenid");
            return (Criteria) this;
        }

        public Criteria andQqOpenidGreaterThanOrEqualTo(String value) {
            addCriterion("qq_openid >=", value, "qqOpenid");
            return (Criteria) this;
        }

        public Criteria andQqOpenidLessThan(String value) {
            addCriterion("qq_openid <", value, "qqOpenid");
            return (Criteria) this;
        }

        public Criteria andQqOpenidLessThanOrEqualTo(String value) {
            addCriterion("qq_openid <=", value, "qqOpenid");
            return (Criteria) this;
        }

        public Criteria andQqOpenidLike(String value) {
            addCriterion("qq_openid like", value, "qqOpenid");
            return (Criteria) this;
        }

        public Criteria andQqOpenidNotLike(String value) {
            addCriterion("qq_openid not like", value, "qqOpenid");
            return (Criteria) this;
        }

        public Criteria andQqOpenidIn(List<String> values) {
            addCriterion("qq_openid in", values, "qqOpenid");
            return (Criteria) this;
        }

        public Criteria andQqOpenidNotIn(List<String> values) {
            addCriterion("qq_openid not in", values, "qqOpenid");
            return (Criteria) this;
        }

        public Criteria andQqOpenidBetween(String value1, String value2) {
            addCriterion("qq_openid between", value1, value2, "qqOpenid");
            return (Criteria) this;
        }

        public Criteria andQqOpenidNotBetween(String value1, String value2) {
            addCriterion("qq_openid not between", value1, value2, "qqOpenid");
            return (Criteria) this;
        }

        public Criteria andQqNicknameIsNull() {
            addCriterion("qq_nickname is null");
            return (Criteria) this;
        }

        public Criteria andQqNicknameIsNotNull() {
            addCriterion("qq_nickname is not null");
            return (Criteria) this;
        }

        public Criteria andQqNicknameEqualTo(String value) {
            addCriterion("qq_nickname =", value, "qqNickname");
            return (Criteria) this;
        }

        public Criteria andQqNicknameNotEqualTo(String value) {
            addCriterion("qq_nickname <>", value, "qqNickname");
            return (Criteria) this;
        }

        public Criteria andQqNicknameGreaterThan(String value) {
            addCriterion("qq_nickname >", value, "qqNickname");
            return (Criteria) this;
        }

        public Criteria andQqNicknameGreaterThanOrEqualTo(String value) {
            addCriterion("qq_nickname >=", value, "qqNickname");
            return (Criteria) this;
        }

        public Criteria andQqNicknameLessThan(String value) {
            addCriterion("qq_nickname <", value, "qqNickname");
            return (Criteria) this;
        }

        public Criteria andQqNicknameLessThanOrEqualTo(String value) {
            addCriterion("qq_nickname <=", value, "qqNickname");
            return (Criteria) this;
        }

        public Criteria andQqNicknameLike(String value) {
            addCriterion("qq_nickname like", value, "qqNickname");
            return (Criteria) this;
        }

        public Criteria andQqNicknameNotLike(String value) {
            addCriterion("qq_nickname not like", value, "qqNickname");
            return (Criteria) this;
        }

        public Criteria andQqNicknameIn(List<String> values) {
            addCriterion("qq_nickname in", values, "qqNickname");
            return (Criteria) this;
        }

        public Criteria andQqNicknameNotIn(List<String> values) {
            addCriterion("qq_nickname not in", values, "qqNickname");
            return (Criteria) this;
        }

        public Criteria andQqNicknameBetween(String value1, String value2) {
            addCriterion("qq_nickname between", value1, value2, "qqNickname");
            return (Criteria) this;
        }

        public Criteria andQqNicknameNotBetween(String value1, String value2) {
            addCriterion("qq_nickname not between", value1, value2, "qqNickname");
            return (Criteria) this;
        }

        public Criteria andWeiboIconSizeIsNull() {
            addCriterion("weibo_icon_size is null");
            return (Criteria) this;
        }

        public Criteria andWeiboIconSizeIsNotNull() {
            addCriterion("weibo_icon_size is not null");
            return (Criteria) this;
        }

        public Criteria andWeiboIconSizeEqualTo(String value) {
            addCriterion("weibo_icon_size =", value, "weiboIconSize");
            return (Criteria) this;
        }

        public Criteria andWeiboIconSizeNotEqualTo(String value) {
            addCriterion("weibo_icon_size <>", value, "weiboIconSize");
            return (Criteria) this;
        }

        public Criteria andWeiboIconSizeGreaterThan(String value) {
            addCriterion("weibo_icon_size >", value, "weiboIconSize");
            return (Criteria) this;
        }

        public Criteria andWeiboIconSizeGreaterThanOrEqualTo(String value) {
            addCriterion("weibo_icon_size >=", value, "weiboIconSize");
            return (Criteria) this;
        }

        public Criteria andWeiboIconSizeLessThan(String value) {
            addCriterion("weibo_icon_size <", value, "weiboIconSize");
            return (Criteria) this;
        }

        public Criteria andWeiboIconSizeLessThanOrEqualTo(String value) {
            addCriterion("weibo_icon_size <=", value, "weiboIconSize");
            return (Criteria) this;
        }

        public Criteria andWeiboIconSizeLike(String value) {
            addCriterion("weibo_icon_size like", value, "weiboIconSize");
            return (Criteria) this;
        }

        public Criteria andWeiboIconSizeNotLike(String value) {
            addCriterion("weibo_icon_size not like", value, "weiboIconSize");
            return (Criteria) this;
        }

        public Criteria andWeiboIconSizeIn(List<String> values) {
            addCriterion("weibo_icon_size in", values, "weiboIconSize");
            return (Criteria) this;
        }

        public Criteria andWeiboIconSizeNotIn(List<String> values) {
            addCriterion("weibo_icon_size not in", values, "weiboIconSize");
            return (Criteria) this;
        }

        public Criteria andWeiboIconSizeBetween(String value1, String value2) {
            addCriterion("weibo_icon_size between", value1, value2, "weiboIconSize");
            return (Criteria) this;
        }

        public Criteria andWeiboIconSizeNotBetween(String value1, String value2) {
            addCriterion("weibo_icon_size not between", value1, value2, "weiboIconSize");
            return (Criteria) this;
        }

        public Criteria andWeiboIconUrlIsNull() {
            addCriterion("weibo_icon_url is null");
            return (Criteria) this;
        }

        public Criteria andWeiboIconUrlIsNotNull() {
            addCriterion("weibo_icon_url is not null");
            return (Criteria) this;
        }

        public Criteria andWeiboIconUrlEqualTo(String value) {
            addCriterion("weibo_icon_url =", value, "weiboIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeiboIconUrlNotEqualTo(String value) {
            addCriterion("weibo_icon_url <>", value, "weiboIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeiboIconUrlGreaterThan(String value) {
            addCriterion("weibo_icon_url >", value, "weiboIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeiboIconUrlGreaterThanOrEqualTo(String value) {
            addCriterion("weibo_icon_url >=", value, "weiboIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeiboIconUrlLessThan(String value) {
            addCriterion("weibo_icon_url <", value, "weiboIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeiboIconUrlLessThanOrEqualTo(String value) {
            addCriterion("weibo_icon_url <=", value, "weiboIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeiboIconUrlLike(String value) {
            addCriterion("weibo_icon_url like", value, "weiboIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeiboIconUrlNotLike(String value) {
            addCriterion("weibo_icon_url not like", value, "weiboIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeiboIconUrlIn(List<String> values) {
            addCriterion("weibo_icon_url in", values, "weiboIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeiboIconUrlNotIn(List<String> values) {
            addCriterion("weibo_icon_url not in", values, "weiboIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeiboIconUrlBetween(String value1, String value2) {
            addCriterion("weibo_icon_url between", value1, value2, "weiboIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeiboIconUrlNotBetween(String value1, String value2) {
            addCriterion("weibo_icon_url not between", value1, value2, "weiboIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeiboOpenidIsNull() {
            addCriterion("weibo_openid is null");
            return (Criteria) this;
        }

        public Criteria andWeiboOpenidIsNotNull() {
            addCriterion("weibo_openid is not null");
            return (Criteria) this;
        }

        public Criteria andWeiboOpenidEqualTo(String value) {
            addCriterion("weibo_openid =", value, "weiboOpenid");
            return (Criteria) this;
        }

        public Criteria andWeiboOpenidNotEqualTo(String value) {
            addCriterion("weibo_openid <>", value, "weiboOpenid");
            return (Criteria) this;
        }

        public Criteria andWeiboOpenidGreaterThan(String value) {
            addCriterion("weibo_openid >", value, "weiboOpenid");
            return (Criteria) this;
        }

        public Criteria andWeiboOpenidGreaterThanOrEqualTo(String value) {
            addCriterion("weibo_openid >=", value, "weiboOpenid");
            return (Criteria) this;
        }

        public Criteria andWeiboOpenidLessThan(String value) {
            addCriterion("weibo_openid <", value, "weiboOpenid");
            return (Criteria) this;
        }

        public Criteria andWeiboOpenidLessThanOrEqualTo(String value) {
            addCriterion("weibo_openid <=", value, "weiboOpenid");
            return (Criteria) this;
        }

        public Criteria andWeiboOpenidLike(String value) {
            addCriterion("weibo_openid like", value, "weiboOpenid");
            return (Criteria) this;
        }

        public Criteria andWeiboOpenidNotLike(String value) {
            addCriterion("weibo_openid not like", value, "weiboOpenid");
            return (Criteria) this;
        }

        public Criteria andWeiboOpenidIn(List<String> values) {
            addCriterion("weibo_openid in", values, "weiboOpenid");
            return (Criteria) this;
        }

        public Criteria andWeiboOpenidNotIn(List<String> values) {
            addCriterion("weibo_openid not in", values, "weiboOpenid");
            return (Criteria) this;
        }

        public Criteria andWeiboOpenidBetween(String value1, String value2) {
            addCriterion("weibo_openid between", value1, value2, "weiboOpenid");
            return (Criteria) this;
        }

        public Criteria andWeiboOpenidNotBetween(String value1, String value2) {
            addCriterion("weibo_openid not between", value1, value2, "weiboOpenid");
            return (Criteria) this;
        }

        public Criteria andWeiboNicknameIsNull() {
            addCriterion("weibo_nickname is null");
            return (Criteria) this;
        }

        public Criteria andWeiboNicknameIsNotNull() {
            addCriterion("weibo_nickname is not null");
            return (Criteria) this;
        }

        public Criteria andWeiboNicknameEqualTo(String value) {
            addCriterion("weibo_nickname =", value, "weiboNickname");
            return (Criteria) this;
        }

        public Criteria andWeiboNicknameNotEqualTo(String value) {
            addCriterion("weibo_nickname <>", value, "weiboNickname");
            return (Criteria) this;
        }

        public Criteria andWeiboNicknameGreaterThan(String value) {
            addCriterion("weibo_nickname >", value, "weiboNickname");
            return (Criteria) this;
        }

        public Criteria andWeiboNicknameGreaterThanOrEqualTo(String value) {
            addCriterion("weibo_nickname >=", value, "weiboNickname");
            return (Criteria) this;
        }

        public Criteria andWeiboNicknameLessThan(String value) {
            addCriterion("weibo_nickname <", value, "weiboNickname");
            return (Criteria) this;
        }

        public Criteria andWeiboNicknameLessThanOrEqualTo(String value) {
            addCriterion("weibo_nickname <=", value, "weiboNickname");
            return (Criteria) this;
        }

        public Criteria andWeiboNicknameLike(String value) {
            addCriterion("weibo_nickname like", value, "weiboNickname");
            return (Criteria) this;
        }

        public Criteria andWeiboNicknameNotLike(String value) {
            addCriterion("weibo_nickname not like", value, "weiboNickname");
            return (Criteria) this;
        }

        public Criteria andWeiboNicknameIn(List<String> values) {
            addCriterion("weibo_nickname in", values, "weiboNickname");
            return (Criteria) this;
        }

        public Criteria andWeiboNicknameNotIn(List<String> values) {
            addCriterion("weibo_nickname not in", values, "weiboNickname");
            return (Criteria) this;
        }

        public Criteria andWeiboNicknameBetween(String value1, String value2) {
            addCriterion("weibo_nickname between", value1, value2, "weiboNickname");
            return (Criteria) this;
        }

        public Criteria andWeiboNicknameNotBetween(String value1, String value2) {
            addCriterion("weibo_nickname not between", value1, value2, "weiboNickname");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconSizeIsNull() {
            addCriterion("weixin_app_icon_size is null");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconSizeIsNotNull() {
            addCriterion("weixin_app_icon_size is not null");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconSizeEqualTo(String value) {
            addCriterion("weixin_app_icon_size =", value, "weixinAppIconSize");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconSizeNotEqualTo(String value) {
            addCriterion("weixin_app_icon_size <>", value, "weixinAppIconSize");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconSizeGreaterThan(String value) {
            addCriterion("weixin_app_icon_size >", value, "weixinAppIconSize");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconSizeGreaterThanOrEqualTo(String value) {
            addCriterion("weixin_app_icon_size >=", value, "weixinAppIconSize");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconSizeLessThan(String value) {
            addCriterion("weixin_app_icon_size <", value, "weixinAppIconSize");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconSizeLessThanOrEqualTo(String value) {
            addCriterion("weixin_app_icon_size <=", value, "weixinAppIconSize");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconSizeLike(String value) {
            addCriterion("weixin_app_icon_size like", value, "weixinAppIconSize");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconSizeNotLike(String value) {
            addCriterion("weixin_app_icon_size not like", value, "weixinAppIconSize");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconSizeIn(List<String> values) {
            addCriterion("weixin_app_icon_size in", values, "weixinAppIconSize");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconSizeNotIn(List<String> values) {
            addCriterion("weixin_app_icon_size not in", values, "weixinAppIconSize");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconSizeBetween(String value1, String value2) {
            addCriterion("weixin_app_icon_size between", value1, value2, "weixinAppIconSize");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconSizeNotBetween(String value1, String value2) {
            addCriterion("weixin_app_icon_size not between", value1, value2, "weixinAppIconSize");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconUrlIsNull() {
            addCriterion("weixin_app_icon_url is null");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconUrlIsNotNull() {
            addCriterion("weixin_app_icon_url is not null");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconUrlEqualTo(String value) {
            addCriterion("weixin_app_icon_url =", value, "weixinAppIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconUrlNotEqualTo(String value) {
            addCriterion("weixin_app_icon_url <>", value, "weixinAppIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconUrlGreaterThan(String value) {
            addCriterion("weixin_app_icon_url >", value, "weixinAppIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconUrlGreaterThanOrEqualTo(String value) {
            addCriterion("weixin_app_icon_url >=", value, "weixinAppIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconUrlLessThan(String value) {
            addCriterion("weixin_app_icon_url <", value, "weixinAppIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconUrlLessThanOrEqualTo(String value) {
            addCriterion("weixin_app_icon_url <=", value, "weixinAppIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconUrlLike(String value) {
            addCriterion("weixin_app_icon_url like", value, "weixinAppIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconUrlNotLike(String value) {
            addCriterion("weixin_app_icon_url not like", value, "weixinAppIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconUrlIn(List<String> values) {
            addCriterion("weixin_app_icon_url in", values, "weixinAppIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconUrlNotIn(List<String> values) {
            addCriterion("weixin_app_icon_url not in", values, "weixinAppIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconUrlBetween(String value1, String value2) {
            addCriterion("weixin_app_icon_url between", value1, value2, "weixinAppIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeixinAppIconUrlNotBetween(String value1, String value2) {
            addCriterion("weixin_app_icon_url not between", value1, value2, "weixinAppIconUrl");
            return (Criteria) this;
        }

        public Criteria andWeixinAppOpenidIsNull() {
            addCriterion("weixin_app_openid is null");
            return (Criteria) this;
        }

        public Criteria andWeixinAppOpenidIsNotNull() {
            addCriterion("weixin_app_openid is not null");
            return (Criteria) this;
        }

        public Criteria andWeixinAppOpenidEqualTo(String value) {
            addCriterion("weixin_app_openid =", value, "weixinAppOpenid");
            return (Criteria) this;
        }

        public Criteria andWeixinAppOpenidNotEqualTo(String value) {
            addCriterion("weixin_app_openid <>", value, "weixinAppOpenid");
            return (Criteria) this;
        }

        public Criteria andWeixinAppOpenidGreaterThan(String value) {
            addCriterion("weixin_app_openid >", value, "weixinAppOpenid");
            return (Criteria) this;
        }

        public Criteria andWeixinAppOpenidGreaterThanOrEqualTo(String value) {
            addCriterion("weixin_app_openid >=", value, "weixinAppOpenid");
            return (Criteria) this;
        }

        public Criteria andWeixinAppOpenidLessThan(String value) {
            addCriterion("weixin_app_openid <", value, "weixinAppOpenid");
            return (Criteria) this;
        }

        public Criteria andWeixinAppOpenidLessThanOrEqualTo(String value) {
            addCriterion("weixin_app_openid <=", value, "weixinAppOpenid");
            return (Criteria) this;
        }

        public Criteria andWeixinAppOpenidLike(String value) {
            addCriterion("weixin_app_openid like", value, "weixinAppOpenid");
            return (Criteria) this;
        }

        public Criteria andWeixinAppOpenidNotLike(String value) {
            addCriterion("weixin_app_openid not like", value, "weixinAppOpenid");
            return (Criteria) this;
        }

        public Criteria andWeixinAppOpenidIn(List<String> values) {
            addCriterion("weixin_app_openid in", values, "weixinAppOpenid");
            return (Criteria) this;
        }

        public Criteria andWeixinAppOpenidNotIn(List<String> values) {
            addCriterion("weixin_app_openid not in", values, "weixinAppOpenid");
            return (Criteria) this;
        }

        public Criteria andWeixinAppOpenidBetween(String value1, String value2) {
            addCriterion("weixin_app_openid between", value1, value2, "weixinAppOpenid");
            return (Criteria) this;
        }

        public Criteria andWeixinAppOpenidNotBetween(String value1, String value2) {
            addCriterion("weixin_app_openid not between", value1, value2, "weixinAppOpenid");
            return (Criteria) this;
        }

        public Criteria andWeixinUnionidIsNull() {
            addCriterion("weixin_unionid is null");
            return (Criteria) this;
        }

        public Criteria andWeixinUnionidIsNotNull() {
            addCriterion("weixin_unionid is not null");
            return (Criteria) this;
        }

        public Criteria andWeixinUnionidEqualTo(String value) {
            addCriterion("weixin_unionid =", value, "weixinUnionid");
            return (Criteria) this;
        }

        public Criteria andWeixinUnionidNotEqualTo(String value) {
            addCriterion("weixin_unionid <>", value, "weixinUnionid");
            return (Criteria) this;
        }

        public Criteria andWeixinUnionidGreaterThan(String value) {
            addCriterion("weixin_unionid >", value, "weixinUnionid");
            return (Criteria) this;
        }

        public Criteria andWeixinUnionidGreaterThanOrEqualTo(String value) {
            addCriterion("weixin_unionid >=", value, "weixinUnionid");
            return (Criteria) this;
        }

        public Criteria andWeixinUnionidLessThan(String value) {
            addCriterion("weixin_unionid <", value, "weixinUnionid");
            return (Criteria) this;
        }

        public Criteria andWeixinUnionidLessThanOrEqualTo(String value) {
            addCriterion("weixin_unionid <=", value, "weixinUnionid");
            return (Criteria) this;
        }

        public Criteria andWeixinUnionidLike(String value) {
            addCriterion("weixin_unionid like", value, "weixinUnionid");
            return (Criteria) this;
        }

        public Criteria andWeixinUnionidNotLike(String value) {
            addCriterion("weixin_unionid not like", value, "weixinUnionid");
            return (Criteria) this;
        }

        public Criteria andWeixinUnionidIn(List<String> values) {
            addCriterion("weixin_unionid in", values, "weixinUnionid");
            return (Criteria) this;
        }

        public Criteria andWeixinUnionidNotIn(List<String> values) {
            addCriterion("weixin_unionid not in", values, "weixinUnionid");
            return (Criteria) this;
        }

        public Criteria andWeixinUnionidBetween(String value1, String value2) {
            addCriterion("weixin_unionid between", value1, value2, "weixinUnionid");
            return (Criteria) this;
        }

        public Criteria andWeixinUnionidNotBetween(String value1, String value2) {
            addCriterion("weixin_unionid not between", value1, value2, "weixinUnionid");
            return (Criteria) this;
        }

        public Criteria andWeixinNicknameIsNull() {
            addCriterion("weixin_nickname is null");
            return (Criteria) this;
        }

        public Criteria andWeixinNicknameIsNotNull() {
            addCriterion("weixin_nickname is not null");
            return (Criteria) this;
        }

        public Criteria andWeixinNicknameEqualTo(String value) {
            addCriterion("weixin_nickname =", value, "weixinNickname");
            return (Criteria) this;
        }

        public Criteria andWeixinNicknameNotEqualTo(String value) {
            addCriterion("weixin_nickname <>", value, "weixinNickname");
            return (Criteria) this;
        }

        public Criteria andWeixinNicknameGreaterThan(String value) {
            addCriterion("weixin_nickname >", value, "weixinNickname");
            return (Criteria) this;
        }

        public Criteria andWeixinNicknameGreaterThanOrEqualTo(String value) {
            addCriterion("weixin_nickname >=", value, "weixinNickname");
            return (Criteria) this;
        }

        public Criteria andWeixinNicknameLessThan(String value) {
            addCriterion("weixin_nickname <", value, "weixinNickname");
            return (Criteria) this;
        }

        public Criteria andWeixinNicknameLessThanOrEqualTo(String value) {
            addCriterion("weixin_nickname <=", value, "weixinNickname");
            return (Criteria) this;
        }

        public Criteria andWeixinNicknameLike(String value) {
            addCriterion("weixin_nickname like", value, "weixinNickname");
            return (Criteria) this;
        }

        public Criteria andWeixinNicknameNotLike(String value) {
            addCriterion("weixin_nickname not like", value, "weixinNickname");
            return (Criteria) this;
        }

        public Criteria andWeixinNicknameIn(List<String> values) {
            addCriterion("weixin_nickname in", values, "weixinNickname");
            return (Criteria) this;
        }

        public Criteria andWeixinNicknameNotIn(List<String> values) {
            addCriterion("weixin_nickname not in", values, "weixinNickname");
            return (Criteria) this;
        }

        public Criteria andWeixinNicknameBetween(String value1, String value2) {
            addCriterion("weixin_nickname between", value1, value2, "weixinNickname");
            return (Criteria) this;
        }

        public Criteria andWeixinNicknameNotBetween(String value1, String value2) {
            addCriterion("weixin_nickname not between", value1, value2, "weixinNickname");
            return (Criteria) this;
        }

        public Criteria andDeviceTokenIsNull() {
            addCriterion("device_token is null");
            return (Criteria) this;
        }

        public Criteria andDeviceTokenIsNotNull() {
            addCriterion("device_token is not null");
            return (Criteria) this;
        }

        public Criteria andDeviceTokenEqualTo(String value) {
            addCriterion("device_token =", value, "deviceToken");
            return (Criteria) this;
        }

        public Criteria andDeviceTokenNotEqualTo(String value) {
            addCriterion("device_token <>", value, "deviceToken");
            return (Criteria) this;
        }

        public Criteria andDeviceTokenGreaterThan(String value) {
            addCriterion("device_token >", value, "deviceToken");
            return (Criteria) this;
        }

        public Criteria andDeviceTokenGreaterThanOrEqualTo(String value) {
            addCriterion("device_token >=", value, "deviceToken");
            return (Criteria) this;
        }

        public Criteria andDeviceTokenLessThan(String value) {
            addCriterion("device_token <", value, "deviceToken");
            return (Criteria) this;
        }

        public Criteria andDeviceTokenLessThanOrEqualTo(String value) {
            addCriterion("device_token <=", value, "deviceToken");
            return (Criteria) this;
        }

        public Criteria andDeviceTokenLike(String value) {
            addCriterion("device_token like", value, "deviceToken");
            return (Criteria) this;
        }

        public Criteria andDeviceTokenNotLike(String value) {
            addCriterion("device_token not like", value, "deviceToken");
            return (Criteria) this;
        }

        public Criteria andDeviceTokenIn(List<String> values) {
            addCriterion("device_token in", values, "deviceToken");
            return (Criteria) this;
        }

        public Criteria andDeviceTokenNotIn(List<String> values) {
            addCriterion("device_token not in", values, "deviceToken");
            return (Criteria) this;
        }

        public Criteria andDeviceTokenBetween(String value1, String value2) {
            addCriterion("device_token between", value1, value2, "deviceToken");
            return (Criteria) this;
        }

        public Criteria andDeviceTokenNotBetween(String value1, String value2) {
            addCriterion("device_token not between", value1, value2, "deviceToken");
            return (Criteria) this;
        }

        public Criteria andGetuiIdIsNull() {
            addCriterion("getui_id is null");
            return (Criteria) this;
        }

        public Criteria andGetuiIdIsNotNull() {
            addCriterion("getui_id is not null");
            return (Criteria) this;
        }

        public Criteria andGetuiIdEqualTo(String value) {
            addCriterion("getui_id =", value, "getuiId");
            return (Criteria) this;
        }

        public Criteria andGetuiIdNotEqualTo(String value) {
            addCriterion("getui_id <>", value, "getuiId");
            return (Criteria) this;
        }

        public Criteria andGetuiIdGreaterThan(String value) {
            addCriterion("getui_id >", value, "getuiId");
            return (Criteria) this;
        }

        public Criteria andGetuiIdGreaterThanOrEqualTo(String value) {
            addCriterion("getui_id >=", value, "getuiId");
            return (Criteria) this;
        }

        public Criteria andGetuiIdLessThan(String value) {
            addCriterion("getui_id <", value, "getuiId");
            return (Criteria) this;
        }

        public Criteria andGetuiIdLessThanOrEqualTo(String value) {
            addCriterion("getui_id <=", value, "getuiId");
            return (Criteria) this;
        }

        public Criteria andGetuiIdLike(String value) {
            addCriterion("getui_id like", value, "getuiId");
            return (Criteria) this;
        }

        public Criteria andGetuiIdNotLike(String value) {
            addCriterion("getui_id not like", value, "getuiId");
            return (Criteria) this;
        }

        public Criteria andGetuiIdIn(List<String> values) {
            addCriterion("getui_id in", values, "getuiId");
            return (Criteria) this;
        }

        public Criteria andGetuiIdNotIn(List<String> values) {
            addCriterion("getui_id not in", values, "getuiId");
            return (Criteria) this;
        }

        public Criteria andGetuiIdBetween(String value1, String value2) {
            addCriterion("getui_id between", value1, value2, "getuiId");
            return (Criteria) this;
        }

        public Criteria andGetuiIdNotBetween(String value1, String value2) {
            addCriterion("getui_id not between", value1, value2, "getuiId");
            return (Criteria) this;
        }

        public Criteria andUserSettingIsNull() {
            addCriterion("user_setting is null");
            return (Criteria) this;
        }

        public Criteria andUserSettingIsNotNull() {
            addCriterion("user_setting is not null");
            return (Criteria) this;
        }

        public Criteria andUserSettingEqualTo(String value) {
            addCriterion("user_setting =", value, "userSetting");
            return (Criteria) this;
        }

        public Criteria andUserSettingNotEqualTo(String value) {
            addCriterion("user_setting <>", value, "userSetting");
            return (Criteria) this;
        }

        public Criteria andUserSettingGreaterThan(String value) {
            addCriterion("user_setting >", value, "userSetting");
            return (Criteria) this;
        }

        public Criteria andUserSettingGreaterThanOrEqualTo(String value) {
            addCriterion("user_setting >=", value, "userSetting");
            return (Criteria) this;
        }

        public Criteria andUserSettingLessThan(String value) {
            addCriterion("user_setting <", value, "userSetting");
            return (Criteria) this;
        }

        public Criteria andUserSettingLessThanOrEqualTo(String value) {
            addCriterion("user_setting <=", value, "userSetting");
            return (Criteria) this;
        }

        public Criteria andUserSettingLike(String value) {
            addCriterion("user_setting like", value, "userSetting");
            return (Criteria) this;
        }

        public Criteria andUserSettingNotLike(String value) {
            addCriterion("user_setting not like", value, "userSetting");
            return (Criteria) this;
        }

        public Criteria andUserSettingIn(List<String> values) {
            addCriterion("user_setting in", values, "userSetting");
            return (Criteria) this;
        }

        public Criteria andUserSettingNotIn(List<String> values) {
            addCriterion("user_setting not in", values, "userSetting");
            return (Criteria) this;
        }

        public Criteria andUserSettingBetween(String value1, String value2) {
            addCriterion("user_setting between", value1, value2, "userSetting");
            return (Criteria) this;
        }

        public Criteria andUserSettingNotBetween(String value1, String value2) {
            addCriterion("user_setting not between", value1, value2, "userSetting");
            return (Criteria) this;
        }

        public Criteria andDsnIsNull() {
            addCriterion("dsn is null");
            return (Criteria) this;
        }

        public Criteria andDsnIsNotNull() {
            addCriterion("dsn is not null");
            return (Criteria) this;
        }

        public Criteria andDsnEqualTo(String value) {
            addCriterion("dsn =", value, "dsn");
            return (Criteria) this;
        }

        public Criteria andDsnNotEqualTo(String value) {
            addCriterion("dsn <>", value, "dsn");
            return (Criteria) this;
        }

        public Criteria andDsnGreaterThan(String value) {
            addCriterion("dsn >", value, "dsn");
            return (Criteria) this;
        }

        public Criteria andDsnGreaterThanOrEqualTo(String value) {
            addCriterion("dsn >=", value, "dsn");
            return (Criteria) this;
        }

        public Criteria andDsnLessThan(String value) {
            addCriterion("dsn <", value, "dsn");
            return (Criteria) this;
        }

        public Criteria andDsnLessThanOrEqualTo(String value) {
            addCriterion("dsn <=", value, "dsn");
            return (Criteria) this;
        }

        public Criteria andDsnLike(String value) {
            addCriterion("dsn like", value, "dsn");
            return (Criteria) this;
        }

        public Criteria andDsnNotLike(String value) {
            addCriterion("dsn not like", value, "dsn");
            return (Criteria) this;
        }

        public Criteria andDsnIn(List<String> values) {
            addCriterion("dsn in", values, "dsn");
            return (Criteria) this;
        }

        public Criteria andDsnNotIn(List<String> values) {
            addCriterion("dsn not in", values, "dsn");
            return (Criteria) this;
        }

        public Criteria andDsnBetween(String value1, String value2) {
            addCriterion("dsn between", value1, value2, "dsn");
            return (Criteria) this;
        }

        public Criteria andDsnNotBetween(String value1, String value2) {
            addCriterion("dsn not between", value1, value2, "dsn");
            return (Criteria) this;
        }

        public Criteria andLarkCodeIsNull() {
            addCriterion("lark_code is null");
            return (Criteria) this;
        }

        public Criteria andLarkCodeIsNotNull() {
            addCriterion("lark_code is not null");
            return (Criteria) this;
        }

        public Criteria andLarkCodeEqualTo(String value) {
            addCriterion("lark_code =", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeNotEqualTo(String value) {
            addCriterion("lark_code <>", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeGreaterThan(String value) {
            addCriterion("lark_code >", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeGreaterThanOrEqualTo(String value) {
            addCriterion("lark_code >=", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeLessThan(String value) {
            addCriterion("lark_code <", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeLessThanOrEqualTo(String value) {
            addCriterion("lark_code <=", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeLike(String value) {
            addCriterion("lark_code like", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeNotLike(String value) {
            addCriterion("lark_code not like", value, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeIn(List<String> values) {
            addCriterion("lark_code in", values, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeNotIn(List<String> values) {
            addCriterion("lark_code not in", values, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeBetween(String value1, String value2) {
            addCriterion("lark_code between", value1, value2, "larkCode");
            return (Criteria) this;
        }

        public Criteria andLarkCodeNotBetween(String value1, String value2) {
            addCriterion("lark_code not between", value1, value2, "larkCode");
            return (Criteria) this;
        }

        public Criteria andAppChannelIsNull() {
            addCriterion("app_channel is null");
            return (Criteria) this;
        }

        public Criteria andAppChannelIsNotNull() {
            addCriterion("app_channel is not null");
            return (Criteria) this;
        }

        public Criteria andAppChannelEqualTo(String value) {
            addCriterion("app_channel =", value, "appChannel");
            return (Criteria) this;
        }

        public Criteria andAppChannelNotEqualTo(String value) {
            addCriterion("app_channel <>", value, "appChannel");
            return (Criteria) this;
        }

        public Criteria andAppChannelGreaterThan(String value) {
            addCriterion("app_channel >", value, "appChannel");
            return (Criteria) this;
        }

        public Criteria andAppChannelGreaterThanOrEqualTo(String value) {
            addCriterion("app_channel >=", value, "appChannel");
            return (Criteria) this;
        }

        public Criteria andAppChannelLessThan(String value) {
            addCriterion("app_channel <", value, "appChannel");
            return (Criteria) this;
        }

        public Criteria andAppChannelLessThanOrEqualTo(String value) {
            addCriterion("app_channel <=", value, "appChannel");
            return (Criteria) this;
        }

        public Criteria andAppChannelLike(String value) {
            addCriterion("app_channel like", value, "appChannel");
            return (Criteria) this;
        }

        public Criteria andAppChannelNotLike(String value) {
            addCriterion("app_channel not like", value, "appChannel");
            return (Criteria) this;
        }

        public Criteria andAppChannelIn(List<String> values) {
            addCriterion("app_channel in", values, "appChannel");
            return (Criteria) this;
        }

        public Criteria andAppChannelNotIn(List<String> values) {
            addCriterion("app_channel not in", values, "appChannel");
            return (Criteria) this;
        }

        public Criteria andAppChannelBetween(String value1, String value2) {
            addCriterion("app_channel between", value1, value2, "appChannel");
            return (Criteria) this;
        }

        public Criteria andAppChannelNotBetween(String value1, String value2) {
            addCriterion("app_channel not between", value1, value2, "appChannel");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}